/**
 * @param {number[]} nums
 * @return {number}
 */

// 在集合内逐个删除
var missingNumber = function (nums) {
    const len = nums.length;
    const set = new Set();

    for (let i = 0; i <= len; i++) {
        set.add(i);
    }

    for (let i = 0; i < len; i++) {
        set.delete(nums[i])
    }

    for (let value of set) {
        return value;
    }

};

// 数学计算：所有数总和 - 数组内数总和
var missingNumber = function (nums) {
    const len = nums.length;
    let sum = 0;
    for (let i = 1; i <= len; i++) {
        sum += i;
    }

    for (let i = 0; i < len; i++) {
        sum -= nums[i]
    }
    return sum;
};

// 排序找出第一个下标与之不同的地方
var missingNumber = function (nums) {
    const len = nums.length;
    nums.sort(function (a, b) { return a - b });
    for (let i = 0; i < len; i++) {
        if (i !== nums[i]) {
            return i
        }
    }
    return len;
};